home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
A-Monthly Disks
/
(c)abj.d64
/
address list
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
5KB
|
215 lines
0 REM******* BUCK'S ADDRESS LIST *****
1 IFA=0THENA=1:LOAD"ADDRESS LIST M/L",8,1
5 TI$="000000":SYS30120:POKE53281,0:POKE53280,0:CLR
10 IFVAL(TI$)>210THENTI$="000000":SYS30120
15 PRINTCHR$(147):RESTORE
20 PRINTTAB(10)"[152]*** ADDRESS FILE [146]***"
25 PRINT"":FOR A=1TO3:READ M$
30 PRINTTAB(10);"";A;"- ";M$
35 NEXT A
40 PRINTTAB(10)" CHOOSE BY NUMBER [146]"
45 GET A$:A=VAL(A$):IF A<1 THEN 45
50 ON A GOTO 95, 135, 85
55 GOTO 45
60 DATA INPUT DATA,READ DATA,QUIT,ADD ENTRIES
65 DATA CHANGE ENTRY,DELETE ENTRY
70 DATA START NEW FILE,DESTROY FILE,GO TO MAIN MENUE
75 DATA READ ALL ENTRIES,READ BY LAST NAME,READ BY FIRST NAME
80 DATA READ SINGLE ENTRY,GO TO MAIN MENUE
85 IF PT%>0 THENGOSUB 740
90 SYS770
95 PRINT CHR$(147)
100 PRINTTAB(10)"*** ADDRESS FILE [146]***"
105 PRINT"":FOR A=1TO6:READ M$
110 PRINTTAB(10);"";A;"- ";M$
115 NEXT A
120 PRINTTAB(10)" CHOOSE BY NUMBER [146]"
125 GET A$:A=VAL(A$):IF A<1 THEN 125
130 ON A GOTO 235, 405, 480, 185, 205, 10
135 FOR A=1 TO 6:READ M$:NEXT A
140 PRINTCHR$(147)
145 PRINTTAB(10)"*** ADDRESS FILE [146]***"
150 PRINT"":FOR A=1TO5:READ M$
155 PRINTTAB(10);"";A;"- ";M$
160 NEXT A
165 PRINTTAB(10)" CHOOSE BY NUMBER [146]"
170 GET A$:A=VAL(A$):IF A<1 THEN 170
175 ON A GOTO 275, 315, 310, 305, 10
180 REM***** START FILE ***************
185 OPEN15,8,15,"I0"
190 OPEN2,8,2,"0:ADDRESS FILE,S,W"
195 PRINT#2,0:CLOSE2:CLOSE15:GOTO 10
200 REM***** DESTROY FILE *************
205 PRINT"[147]ARE YOU SURE YOU WANT TO DESTROY"
210 PRINT"YOUR ENTIRE ADDRESS FILE ?????(Y/N)"
215 GETA$:IFA$=""THEN 215
220 IFA$="Y"THENOPEN15,8,15,"S0:ADDRESS FILE":CLOSE15:GOTO 10
225 IFA$<>"N"THEN 215
230 GOTO 10
235 REM*** ADD TO FILE ****************
240 IF PT%>0 THENGOSUB 740
245 IF IP%=1 THENCLR
250 PRINT CHR$(147):PRINT:PRINT
255 INPUT" NUMBER OF NAMES TO ADD";NE%
260 GOSUB 625
265 FOR X=N%+1TON:GOSUB 565:NEXT X
270 PT%=1:GOSUB 875:GOTO 10
275 REM*** READ SUBROUTINE ************
280 GOSUB 625:FOR X=1TON
285 IF DA$(X,1)="\X"THEN 295
290 GOSUB 820
295 NEXT X:GOTO 10
300 REM*** SEARCH SUBROUTINE **********
305 L%=1:GOTO 315
310 F%=1
315 GOSUB 625
320 PRINT CHR$(147):PRINT:PRINT
325 PRINT" NAME TO FIND ":PRINT
330 IF F%=1 THENNA$="":GOTO 345
335 INPUT" LAST NAME";NA$
340 IF F%=0ANDL%=0THENNL$="":GOTO 350
345 PRINT:INPUT" FIRST NAME ";NL$
350 FOR X=1TON
355 IF F%=0 THENGOTO 365
360 IF DA$(X,2)=NL$ OR DA$(X,3)=NL$ THENGOTO 390
365 IF DA$(X,1)<>NA$ THEN 395
370 IF L%=1 THEN 385
375 IF L%=0 THEN 390
380 IF F%=O THEN 390
385 IF DA$(X,2)<>NL$ THEN 395
390 GOSUB 820
395 NEXT X:L%=0:F%=O
400 GOTO 10
405 REM*** CHANGE SUBROUTINE **********
410 GOSUB 625
415 PRINT CHR$(147):PRINT:PRINT
420 PRINT" NAME TO CHANGE "
425 PRINT:INPUT" LAST NAME ";NA$
430 PRINT:INPUT" FIRST NAME ";NL$
435 FOR X=1TON
440 IF DA$(X,1)<>NA$ THEN 470
445 IF DA$(X,2)<>NL$ THEN 470
450 FORY=1TO8:PRINTTAB(7);" ";DA$(X,Y)
455 INPUT "[145]";DA$(X,Y)
460 GOSUB 1015
465 NEXT Y
470 NEXT X
475 PT%=1:GOTO 10
480 REM*** DELETE SUBROUTINE **********
485 PRINTCHR$(147):PRINT:PRINT
490 PRINT" ENTER NAME TO DELETE":PRINT
495 INPUT" LAST NAME";NA$
500 PRINT:INPUT" FIRST NAME ";NN$
505 GOSUB 625
510 FOR X=1TON
515 IF DA$(X,1)<>NA$ THEN 560
520 IF DA$(X,2)<>NN$ THEN 560
525 GOSUB 820
530 PRINT" IS THIS THE ENTRY TO DELETE? (Y/N)"
535 GET AN$
540 IF AN$="N" THEN 10
545 IF AN$<>"Y" THEN 535
550 DA$(X,1)="\X"
555 PT%=2:D%=D%+1
560 NEXT X:GOTO 10
565 REM*** INPUT SUBROUTINE ***********
570 PRINT CHR$(147):PRINT:PRINT
575 PRINT" ENTRY #";X-N%:PRINT
580 Y=1:INPUT" LAST NAME......";DA$(X,Y):GOSUB 1015
585 Y=2:INPUT" FIRST NAME.....";DA$(X,Y):GOSUB 1015
590 Y=3:INPUT" SPOUSE'S NAME..";DA$(X,Y):GOSUB 1015
595 Y=4:INPUT" ADDRESS........";DA$(X,Y):GOSUB 1015
600 Y=5:INPUT" CITY...........";DA$(X,Y):GOSUB 1015
605 Y=6:INPUT" STATE..........";DA$(X,Y):GOSUB 1015
610 Y=7:INPUT" ZIP CODE.......";DA$(X,Y):GOSUB 1015
615 Y=8:INPUT" PHONE #........";DA$(X,Y):GOSUB 1015
620 RETURN
625 REM*** INPUT# SUBROUTINE **********
630 PRINT"[147]"
635 PRINTTAB(12)" LOADING FILE [146]"
640 IF IP%=1 THENRETURN
645 OPEN15,8,15,"I0"
650 OPEN2,8,2,"0:ADDRESS FILE,S,R"
655 INPUT#15,E1$,E2$,E3$,E4$
660 IF VAL(E1$)>0 THENCLOSE2:CLOSE15:GOSUB 715:GOTO 625
665 INPUT#2,N%
670 N=N%+NE%
675 DIM DA$(N+2,8)
680 IF N%=0 THEN 705
685 FOR X=1TON%:FOR Y=1TO8
690 INPUT#2,DA$(X,Y)
695 POKE53280,CL:CL=CL+1:IFCL>16THENCL=0
700 NEXT Y:NEXT X
705 CLOSE2:CLOSE15
710 POKE53280,0:IP%=1:RETURN
715 PRINT"[147]",E2$
720 IFE2$="FILE NOT FOUND"THENPRINT" MAYBE YOU NEED TO START NEW FILE"
725 IFE2$="FILE NOT FOUND"THENPRINT"RUN 10[145][145][145][145]":STOP
730 PRINT" CORRECT ERROR AND HIT RETURN [146]"
735 PRINT"CONT[145][145][145][145]":STOP:RETURN
740 REM*** PRINT# SUBROUTINE **********
745 PRINT"[147]"
750 PRINTTAB(12)" SAVING FILE [146]"
755 OPEN15,8,15,"I0"
760 OPEN2,8,2,"@0:ADDRESS FILE,S,W"
765 INPUT#15,E1$,E2$,E3$,E4$
770 IF VAL(E1$)>0 THENCLOSE2:CLOSE15:GOSUB 715:GOTO 740
775 Q%=N-D%
780 PRINT#2,Q%;CHR$(13);
785 FOR X=1TON:FOR Y=1TO8
790 IF DA$(X,1)="\X"THEN 810
795 PRINT#2,DA$(X,Y)
800 POKE53280,CL:CL=CL+1:IFCL>16THENCL=0
805 NEXT Y
810 NEXT X
815 POKE53280,0:CLOSE2:CLOSE15:RETURN
820 REM******PRINT ROUTINE************
825 PRINT CHR$(147):PRINT""
830 PRINTTAB(10);DA$(X,1);", ";DA$(X,2);" & ";DA$(X,3)
835 PRINTTAB(10);DA$(X,4)
840 PRINTTAB(10);DA$(X,5);", ";DA$(X,6);" "DA$(X,7)
845 PRINTTAB(10);DA$(X,8)
850 PRINTTAB(13);"<HIT ANY KEY>"
855 PRINTTAB(10);"<HIT 'P' FOR PRINT>"
860 GET AN$:IF AN$="" THEN 860
865 IF AN$="P" THENGOSUB 940
870 RETURN
875 REM ********SORT****************
880 IFN<=2THENRETURN
885 PRINT"[147]":PRINTTAB(12)" SORTING FILE [146]"
890 DIM SW$(2,8)
895 FOR X=1 TO N
900 FOR S=NTOX+1 STEP-1:POKE53280,CL:CL=CL+1:IFCL>16THENCL=0
905 IFDA$(X,1)+DA$(X,2)<=DA$(S,1)+DA$(S,2) THEN 935
910 FORY=1TO8:SW$(1,Y)=DA$(S,Y):NEXTY
915 FORZ=S-1TOXSTEP-1:FORY=1TO8
920 DA$(Z+1,Y)=DA$(Z,Y):NEXTY:NEXTZ
925 FORY=1TO8:DA$(X,Y)=SW$(1,Y):NEXTY
930 S=S+1
935 NEXT S:NEXT X:POKE53280,0:RETURN
940 REM ******** PRINTER OUTPUT *****
945 OPEN4,4
950 PRINT"1ST 2ND OR BOTH NAMES (1 2 OR B) ?"
955 GETA$:IFA$=""THEN 955
960 INPUT"HOW MANY";LA%
965 FORZZ=1TOLA%
970 IFA$="1"THEN 990
975 IFA$="2"THEN 985
980 PRINT#4,DA$(X,2);" & ";DA$(X,3);" ";DA$(X,1):GOTO 995
985 PRINT#4,DA$(X,3);" ";DA$(X,1):GOTO 995
990 PRINT#4,DA$(X,2);" ";DA$(X,1)
995 PRINT#4,DA$(X,4)
1000 PRINT#4,DA$(X,5);",";DA$(X,6);" ";DA$(X,7)
1005 FORPR=1TO3:PRINT#4:NEXTPR:PRINT" ";ZZ:NEXTZZ
1010 CLOSE4:X=X-1:RETURN
1015 REM*****************************
1020 REM*** CHECK ENTRY *************
1025 REM*****************************
1030 IF DA$(X,Y)=""THEN 1060
1035 FORCK=1TO(LEN(DA$(X,Y)))
1040 CK$=MID$(DA$(X,Y),CK,1)
1045 IFCK$=","ORCK$=";"ORCK$=":"THEN 1060
1050 NEXT CK
1055 RETURN
1060 DA$(X,Y)="ERROR":RETURN